this 是执行上下文环境的一个属性,而不是某个变量对象的属性。因此:

  • 当代码中使用了 this,这个 this 的值就直接从执行的上下文中获取了,而不会从作用域链中搜寻
  • this 的值只取决进入上下文时的情况

几种情况:

  1. 箭头函数 this:

MDN官方文档里面描述箭头函数this定义的时候,描述的是“箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this。",所以可以理解为,箭头函数的this就是上一层函数作用域或者全局作用域的this。或者理解为:箭头函数不会创建自己的this,它的this是在函数创建时确定的而不是在函数调用时确定的,函数创建时所在的执行上下文的this即为箭头函数的this。

  1. 函数调用 this

指向 window

  1. 方法调用(作为对象的方法) this

指向这个对象

  1. 构造函数 this
  • 用new时,this指向创建的对象
  • 直接调用时,非严格模式this指定window,严格模式this指定undefined
  1. call、apply、bind

指向第一个参数所指向的对象

最后更新时间: 3/28/2021, 9:04:52 PM